package cn.zyjblogs.server.role.service;

import cn.zyjblogs.server.role.po.RolePermissionRelPo;
import cn.zyjblogs.server.role.vo.RolePermissionRelVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Collection;
import java.util.List;

/**
 * @author zhuyijun
 */
public interface RolePermissionRelService extends IService<RolePermissionRelPo> {
    /**
     * @param roleId 角色id
     * @author zhuyijun
     * @date 2022/9/24 上午11:56
     * return 权限id
     */
    List<String> findListByRoleId(String roleId);

    /**
     * @param roleIds 角色id
     * @author zhuyijun
     * @date 2022/9/24 上午11:56
     * return 权限id
     */
    List<String> findListByRoleIds(List<String> roleIds);

    /**
     * @param roleId 角色id
     * @return 角色和权限关联表
     * @author zhuyijun
     * @date 2022/9/24 上午11:56
     */
    List<RolePermissionRelVo> findListVoByRoleId(String roleId);

    /**
     * @param roleIds 角色id
     * @return 角色和权限关联表
     * @author zhuyijun
     * @date 2022/9/24 上午11:56
     */
    List<RolePermissionRelVo> findListVoByRoleIds(List<String> roleIds);

    /**
     * 通过角色id删除权限
     *
     * @param roleId
     * @return
     * @author zhuyijun
     * @date 2022/9/24
     */
    boolean deleteByRoleId(String roleId);

    /**
     * 通过角色id集合删除权限
     *
     * @param roleIds
     * @return
     * @author zhuyijun
     * @date 2022/9/24
     */
    boolean deleteByRoleIds(List<String> roleIds);

    /**
     * 保存或更新角色权限关联
     *
     * @param roleId
     * @param permissionIds
     * @param needClear
     * @return
     * @author zhuyijun
     * @date 2022/9/24
     */
    boolean saveUpdate(String roleId, Collection<String> permissionIds, boolean needClear);
}
